// 配置接口根地址
axios.defaults.baseURL = 'http://www.itcbc.com:8000';

// 配置拦截器
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  // 1.添加加载中的进度条
  NProgress.start();
  // console.log(config);

  // 统一在请求拦截器这里  作token认证
  if (localStorage.getItem('token')) {
    config.headers.Authorization = localStorage.getItem('token');
  }


  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器  统一在响应拦截器这里  作toastr消息处理
axios.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  // 2.数据返回成功后  结束加载进度条
  NProgress.done();
  // console.log(response);

  // 判断业务状态码
  if (response.data.code === 0) {
    // 提示框 提示
    toastr.success(response.data.message, '提示');
  } else if (response.data.code === 1) {
    toastr.error(response.data.message, '提示');
  } 


  return response;
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么


  // 判断一下 http 响应状态码 是不是 401  未登录 跳转回登录页面
  if (error.response.status === 401) {
    // window.top 最上面的那个父元素
    window.top.location.href = './login.html';
  }


  //结束加载进度条
  NProgress.done();
  // console.dir(error);
  // 提示框 提示
  toastr.error(error.response.data.message, '提示');
  return Promise.reject(error);
});